Content Addressable Memory (CAM) is a special type of computer memory used in high-speed searching operations. A CAM is designed such that the user supplies a data word and the CAM searches its entire memory to see whether that data word is stored in the CAM. If the data word is found, the CAM returns a list of one or more storage addresses where the word was found.
A CAM is designed to search its entire memory in a single operation, which makes a CAM faster than Random Access Memory (RAM) in most search operations. However, in a CAM, each individual memory bit in a parallel CAM must have its own associated comparison circuit to detect a match between the stored bit and the input bit. Further, match outputs from each cell in the data word must be combined to yield a complete data word match signal.
Ternary Content Addressable Memory (TCAM) allows three matching states, which include 1, 0, and “X” (i.e., don't care) for one or more bits in the stored data word. TCAM executes a fully parallel search of the entire memory contents and uses a wild-card pattern matching to return search results in a single clock cycle. This capability makes TCAM attractive for implementing fast hardware look-up tables in network routers, processor caches, and many pattern recognition applications. However, the push for higher performance and memory density coupled with already high parallel activation creates noise challenges that could result in timing fails in both TCAM and its surrounding logic.